package com.example.demo;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.example.demo.classes.UserClass;

import java.sql.SQLException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@RestController // 用于定义该类为一个RESTful API控制器
public class UserController {
    @Autowired
    private UserMapper userMapper;

    // 构造函数，用于初始化模拟数据
    public UserController() {
        // 初始化一些用户数据

    }
    // 映射GET请求，获取所有用户
    @GetMapping("/users")
    public List<UserClass> getAllUsers() {
        return userMapper.selectList(null); // 返回200状态码和用户列表
    }
    @GetMapping("/users/{id}")
    public List<UserClass> getOneUsers(@PathVariable Long id) {
        return userMapper.selectList(null); // 返回200状态码和用户列表
    }
    //创建新用户
    @PostMapping("/users")
    public UserClass createUser(@RequestBody UserClass user) {
        userMapper.insert(user);
        return user;
    }
    // 更新指定ID的用户
    @PutMapping("/users/{id}")
    public Integer updateUser(@PathVariable Long id, @RequestBody UserClass updatedUser) {
        return userMapper.updateById(updatedUser);
    }
    // 禁用指定ID的用户
    @PutMapping("/disable/{id}")
    public String disableUser(@PathVariable Long id) {
        // 创建UpdateWrapper来设置更新条件
        UpdateWrapper<UserClass> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id); // 条件：ID匹配
        updateWrapper.set("status", "DISABLED"); // 更新status为DISABLED
        // 执行更新操作
        boolean updated = userMapper.update(null, updateWrapper) > 0;
        // 返回禁用成功的消息
        if (updated) {
            return "用户ID【 " + id + " 】已禁用";
        } else {
            return "禁用用户失败，用户ID【 " + id + " 】不存在或更新失败";
        }
    }

}